[初級編]LLMへ至る道~ニューラルネットワークってなんだ?~[4日目]
みなさんこんにちは!クルトンです。
前回は、活性化関数について確認をしました。機械学習モデルの「表現力を豊かにする」という部分で活躍するものでしたね。
本日のブログは、ここまでの内容で確認してきた内容を理解した状態で、下記のAWS公式サイトにある図を理解する事を目的とします。
本日より前のアドベントカレンダーを見てもらえると、実は理解できる部分もあるのではないでしょうか?まずは簡単なニューラルネットワークについての説明をし、最後に上図について確認していきましょう!
それでは、まずはニューラルネットワークの簡単な説明からです。
ニューラルネットワークの簡単なイメージについて
一言で説明するとニューラルネットワークとは事前に定義した計算式を行なっていき、出力をするものです。
「え、それだけ?」と思われた方がいるかもしれません。ただ意外とやっている事の概要は単純なのです。
では、基本形をイメージで理解してみましょう。下の図をご覧ください。
なにやら知らない単語がいっぱいありますね。「入力層……?隠れ層ってなんだ?」となるかもしれません。箇条書きでそれぞれの単語を説明してみます。
- 入力層
- 何かしらの値を最初に入れる層。入力された値を計算した結果、隠れ層へ値を渡す。
- 隠れ層
- 入力層と出力層の間にある計算する層のこと。ここがたくさんあると深層学習(Deep Learning)と呼ばれたりする。
- 入力層から値を受け取るか、隠れ層から値を受け取る。
- 出力層
- 隠れ層から値を受け取り、最終的な値(学習や推論した結果)を出力する。
また、これらの層の中に丸いものがあります。これらはニューロンと呼ばれるものです。イメージ図を下に記載します。
ニューロンというのは、線型変換という入力値(この例だとx)に足し算や引き算をする関数の事で、例えばy=ax+bのようなものです。この線型変換後に活性化関数を組み合わせたものをニューロンと呼びます。活性化関数は前回確認した内容の関数が一例です。
ニューロンを複数まとめたものを層と呼び、入力値を受け取る層が入力層、最後に値を出力するものが出力層、入力層と出力層の間にあるのが隠れ層と呼ばれます。
ここまでの説明とイメージを見ていただくと分かる通り、「何かの関数を使って計算して出力して、出力結果を受けとって計算してまた出力して……」というものを何度も何度も繰り返す事をしています。これをニューラルネットと呼びます。
ここまでの簡単な説明で、実はみなさんは冒頭の図を理解できるようになっています! 一緒に確認して見ましょう!
冒頭の図を理解してニューラルネットとはなんぞやを感じてみる
以下に冒頭の図を再掲します。
英語で書いていますが、Input Layerと書かれているのが入力層ですね。次にHidden Layerと書かれているのが隠れ層です。かっこ書きでreluと活性化関数が書かれています。reluは前回ブログで確認したものです!
Output Layerは出力層で、softmaxという活性化関数が書かれていますね。 最後に見慣れないLoss Layerというものがあります。損失層とでも訳してみましょう。前々回ブログの損失関数で学んだ交差エントロピー誤差を使っているようです。
それぞれのLayerと書かれている文字の下に数値が書かれています。層の中で何個のニューロンを動かしているかが分かります。
つまり、入力層、隠れ層1、隠れ層2、出力層で入力したものを出力し、最後の損失層でその出力結果が精度良く出力できているか確認していそうですね!
終わりに
今回はニューラルネットワークについてご説明しました。いかがでしたでしょうか。ざっくりとでも理解できていれば幸いです。
このニューラルネットワークで隠れ層をたくさん重ねると深層学習と呼ばれるものになります。英語名だとDeep Learningです。本日のブログでニューラルネットワークをご紹介したのは、実は自然言語処理で使われていたモデルにリカレントニューラルネットワーク(英語表記の略称でRNN)というものがあるからです。
明日は、出力した後のモデル性能をチェックするのに必要な評価指標について説明したいなと考えています。
本日はここまで。よければ明日もご覧いただけますと幸いです。